(function(w, d) {
	w.UploadBase64 = function(imgFile, ele, id, memberid, index) {
		this.imgFile = imgFile;
		this.id = id;
		this.name = (new Date()).valueOf() + memberid + this.imgFile.files[0].name;
		this.flag;
		this.index = index; // 上传图片标识位, 当前功能的第几张图片上传, 从0开始
		// 定义方法
		var pattern = /(\.*.jpg$)|(\.*.png$)|(\.*.jpeg$)|(\.*.gif$)|(\.*.bmp$)/;
		if(!pattern.test(this.imgFile.value)) {
			alert("请上传jpg/jpeg/png/gif/bmp格式的照片！");
			this.imgFile.focus();
		} else {
			//添加显示图片的HTML元素
			angular.element(ele).html(
				"<div class='img-item'><div id='" + this.id + "'>" +
				"<img src=''style='width: 100%; height: 100%;'/></div>" +
				"<span class='delete-hook' " +
				"onclick='angular.element(this).scope().deleteimg(this)'>删除</span>" +
				"</div>");
			//判断浏览器类型
			if(document.all) {
				// 兼容IE
				this.ieBase64(this.imgFile.value, document.getElementById(this.id), index);
			} else {
				// 兼容主流浏览器 
				this.flag = this.mainBase64(this.imgFile.files[0], 
							document.getElementById(this.id), this.name, index);
			}
		}
	};
	UploadBase64.prototype = {
		ieBase64: function(file, ele, name, index) {
			var realPath, xmlHttp, xml_dom, tmpNode, imgBase64Data;
			// 获取文件的真实本地路径.
			realPath = file; 
			xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");
			xmlHttp.open("POST", realPath, false);
			xmlHttp.send("");
			xml_dom = new ActiveXObject("MSXML2.DOMDocument");
			tmpNode = xml_dom.createElement("tmpNode");
			tmpNode.dataType = "bin.base64";
			tmpNode.nodeTypedValue = xmlHttp.responseBody;
			imgBase64Data = "data:image/bmp;base64," + tmpNode.text.replace(/\n/g, "");
			// 渲染图片
			ele.innerHTML = "<img src='" + imgBase64Data 
				+ "' style='width: 100%; height: 100%;'/>"; 
				
			// 调用上传
			lrz(file, {
				width: 1024
			}).then(function(rst) {
				// 展示处理好的图片
				var img = new Image();
				img.src = rst.base64;
				img.onload = function() {
					document.body.appendChild(img);
				};
				return rst;
			}).then(function(rst) {
				// 跟后台进行ajax数据交互，把数据传给后端
				/* ==================================================== */
				if (angular.element(ele).scope().uploadfile(rst.base64, name, index)) 
				/* ==================================================== */
				return rst;
			}).catch(function(err) {
				// 如果出错了，这里可以捕捉到错误信息
				// 而且以上的then都不会执行
				alert(err);
			}).always(function() {
				// 不管是成功失败，这里都会执行
			});
			
		},
		mainBase64: function(file, ele, name, index) {
			var fileReader = new FileReader();
			fileReader.readAsDataURL(file);
			fileReader.onload = function() {
				// base64数据
				var imgData = this.result;
				// 渲染图片
				ele.innerHTML = "<img src='" + imgData 
					+ "' style='width: 100%; height: 100%;'/>";
				
				// 调用上传
			    lrz(file, {
					width: 1024
				}).then(function(rst) {
					// 展示处理好的图片
					var img = new Image();
					img.src = rst.base64;
					img.onload = function() {
						document.body.appendChild(img);
					};
					return rst;
				}).then(function(rst) {
					// 跟后台进行ajax数据交互，把数据传给后端
					/* ==================================================== */
					if (angular.element(ele).scope().uploadfile(rst.base64, name, index)) 
					/* ==================================================== */
					return rst;
				}).catch(function(err) {
					// 如果出错了，这里可以捕捉到错误信息
					// 而且以上的then都不会执行
					alert(err);
				}).always(function() {
					// 不管是成功失败，这里都会执行
				});
			}
		}
	}
})(window, document);